// 1.利用indexOf去重,新建一个空的结果数组，for 循环原数组，判断结果数组是否存在当前元素，如果有相同的值则跳过，不相同则 push 进新数组。
function unique1(arr) {
    let newArr = [];
    for (let i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) == -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr
}
console.log(unique1([1, 2, 5, 4, 3, 5, 'false', 4, 6, 'NaN', 7, 8, 9, 8, 9, 'NaN', 'NaN', 5, 5, 5, 12]));


// 2.  利用ES6set去重
function unique2(arr) {
    return Array.from(new Set(arr))
}
console.log(unique2([6, 3, 7, 5, 6, 'true', 8, 4, 12, 5, 34]));


// 3.利用for循环嵌套for循环,然后利用splice去重
function unique3(arr) {
    for (let i = 0; i < arr.length; i++) {
        for (let j = i + 1; j < arr.length; j++) {
            if (arr[i] == arr[j]) {
                arr.splice(j, 1);
                j--;
            }
        }
    }
    return arr
}
console.log(unique3([6, 3, 7, 5, 6, 'true', 8, 4, 12, 5, 34]));

// 4.使用filter遍历数组
let arr = [3, 6, 9, 7, 6, 4, 3, 2, 1, 3, 9, 9]
let newArr = arr.filter(function (v, i) {
    // return arr.indexOf(v, i + 1) === -1
    return arr.includes(v, i + 1) === false
})
console.log(newArr);
